Central Docs
Catálogo Inicio

08. Diagnóstico y límites

Estas firmas son inválidas:

func missing_size(values: int32[], length: Len_t) void:
    return

func wrong_order(values: int32[], size: Size_t, length: Len_t) void:
    return

func buffer_size(data: buffer[], length: Len_t, size: Size_t) void:
    return

Un array exige Len_t y Size_t, en ese orden. Signed_t debe ir después de ambos y Region_t solo puede seguir a un parámetro unique. Un buffer solo acepta Len_t.

También se rechazan estas llamadas:

func consume(values: int32[], length: Len_t, size: Size_t) void:
    return

func bad() int32:
    values: int32[2] = {1, 2}
    consume(values, 2, 4)  # los metadatos no son argumentos visibles
    return 0

Un array abierto necesita una longitud conocida o propagada. Una matriz debe conservar su forma exacta y no puede exceder tres dimensiones. @unsafe no permite omitir metadatos, cambiar la forma del array ni fabricar un Region_t.